package com.zb.vo;

import com.baomidou.mybatisplus.annotation.TableField;
import com.zb.annotation.NumberPattern;
import com.zb.entity.ZjAccount;
import com.zb.utils.VerificUtil;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.List;

/**
 * @Author WEN
 * @Date 2024/5/25 0025
 **/
@Data
@ApiModel("提现设置")
public class WithdrawSetVo {
    @ApiModelProperty(value = "提现ID，修改必传")
    private Long id;

    @NotNull(message = "是否开启工单提现功能项不能为空")
    @ApiModelProperty(value = "是否开启工单提现功能：false-关闭，true-开启", required = true, example = "true")
    private Boolean enableOrderWithdraw;

    @NotNull(message = "提现冻结期天数不能为空")
    @NumberPattern(regexp = "^\\d{1,6}$", required = true, message = "提现冻结期天数限制6位字符，且必须是>=0")
    @ApiModelProperty(value = "提现冻结期", required = true, example = "7")
    private Integer withdrawFreezeDay;

    @NotNull(message = "每月提现次数不能为空")
    @NumberPattern(regexp = "^\\d{1,6}$", required = true, message = "每月提现次数限制6位字符，且必须是>=0")
    @ApiModelProperty(value = "每月提现次数", required = true, example = "10")
    private Integer monthWithdrawQty;

    @NotNull(message = "开启提现审核项不能为空")
    @ApiModelProperty(value = "是否开启提现审核：false-关闭，true-开启", required = true, example = "true")
    private Boolean enableWithdrawCheck;

    @NotNull(message = "最低提现金额不能为空")
    @NumberPattern(regexp = "^\\d{1,6}$", required = true, message = "最低提现金额限制6位字符，且必须是>0")
    @ApiModelProperty(value = "最低提现金额", required = true, example = "100")
    private BigDecimal minWithdrawMoney;

    @ApiModelProperty(value = "提现审核人员ID，当enableWithdrawCheck=true时，该字段必填")
    private List<Long> empIds;

    @ApiModelProperty(value = "有权打款人员ID")
    private List<Long> payEmpIds;

    @ApiModelProperty(value = "有权打款的人员-实体类-仅展示")
    private List<ZjAccount> payEmp;
}
